package org.jet.emall.rbac.service;

import org.jet.emall.common.restful.result.CommonPage;
import org.jet.emall.rbac.dto.AdminPrivilegeDTO;
import org.jet.emall.rbac.dto.AdminRoleDTO;

import java.util.List;

/**
 * @author xiaozai
 * @version 1.0
 * @date 2020-04-05 20:09
 */
public interface CustomAdminRoleService {

    /**
     * 角色分页
     * @param query
     * @param pageNum
     * @param pageSize
     * @return
     */
    CommonPage<AdminRoleDTO> page(String query,Integer pageNum,Integer pageSize);

    /**
     * 获取所有角色列表
     * @return
     */
    List<AdminRoleDTO> list();

    /**
     *  保存新建的角色
     * @param adminRoleDTO 新建角色DTO
     */
    void save(AdminRoleDTO adminRoleDTO);

    /**
     * 删除角色
     * @param ids
     */
    void delete(List<Integer> ids);

    /**
     * 修改角色
     * @param adminRoleDTO
     */
    void update(AdminRoleDTO adminRoleDTO);

    /**
     * 分配权限
     * @param id  角色id
     * @param pids  权限id列表
     */
    void update(Integer id, List<Integer> pids);

    /**
     * 获取角色的权限列表，以树型结构展示
     * @param roleId
     * @return
     */
    List<AdminPrivilegeDTO> listPrivilegesOfRole(Integer roleId);

    /**
     * 获取角色的权限ID列表
     * @param roleId
     * @return
     */
    List<Integer> listPrivilegeIdsOfRole(Integer roleId);
}
